home *** CD-ROM | disk | FTP | other *** search
- *****Listing 3*****
-
- 1: /*
- 2: * MDBUTIL.C
- 3: *
- 4: * Program: Mini-Database
- 5: * Written by: Leor Zolman
- 6: * Module: Utility functions
- 7: */
- 8:
- 9: #include <stdio.h>
- 10: #include <stdlib.h>
- 11: #include "mdb.h"
- 12:
- 13:
- 14: /*
- 15: * Function: do_menu
- 16: * Purpose: Simple line-oriented menu handler
- 17: * Parameters: None
- 18: * Return Value: None
- 19: */
- 20:
- 21: int do_menu(struct menu_item *mnu, char *title)
- 22: {
- 23: int i, j;
- 24: char buf[150];
- 25:
- 26: printf("\n%s -- Options:\n", title);
- 27: for (i = 0; mnu[i].action_code != NULL; i++)
- 28: printf("%2d) %s\n", i+1, mnu[i].descrip);
- 29:
- 30: while (1)
- 31: {
- 32: printf("\nYour choice? ");
- 33: j = atoi(gets(buf));
- 34: if (j >= 1 && j <= i)
- 35: break;
- 36: printf("Please select from options 1-%d: ", i+1);
- 37: }
- 38:
- 39: return mnu[j - 1].action_code;
- 40: }
- 41:
- 42:
- 43: /*
- 44: * Function: error
- 45: * Purpose: Report error and terminate program
- 46: * Parameters: Message to display
- 47: * Return Value: None
- 48: */
- 49:
- 50: void error(char *msg)
- 51: {
- 52: printf("Fatal Condition: %s\n", msg);
- 53: exit(-1);
- 54: }
- 55:
- 56:
- 57: /*
- 58: * Function: alloc_rec
- 59: * Purpose: Allocate memory for a Database record,
- 60: * checking for an allocation error
- 61: * Parameters: None
- 62: * Return Value: Pointer to memory, or NULL on error
- 63: */
- 64:
- 65: struct record *alloc_rec(void)
- 66: {
- 67: struct record *temp;
- 68:
- 69: if ((temp = malloc(sizeof(struct record))) == NULL)
- 70: return NULL;
- 71: else
- 72: return temp;
- 73: }
- 74:
- 75:
- 76: /*
- 77: * Function: free_up
- 78: * Purpose: De-allocate all records in current Database
- 79: * Parameters: None
- 80: * Return Value: None
- 81: */
- 82:
- 83: void free_up()
- 84: {
- 85: int i;
- 86:
- 87: for (i = 0; i < n_recs; i++)
- 88: free(RECS[i]);
- 89: }
- 90:
- 91:
-